#ifndef __XMPP_FILTER_H__
#define __XMPP_FILTER_H__

#include "defines.h"
#include "iksemel.h"
#include "IoOps.h"
#include "xmppLogger.h"
#include "baseCallbacks.h"

class xmppFilter {
  public:
    xmppFilter(baseCallbacks *cbs, xmppLogger *logger=NULL);
    xmppFilter(const xmppFilter &);
    xret setupFilter(iksparser *parser);
    xret getFilter(iksfilter **rfilter);
    virtual ~xmppFilter();
  protected:
    static int process_message(void *_this, ikspak *pak);
    static int process_bind(void *_this, ikspak *pak);
    static int process_iq(void *_this, ikspak *pak);
    static int process_presence(void *_this, ikspak *pak);
  private:
    baseCallbacks *calls;
    iksfilter *_filter;
    iksparser *_parser;
    xmppLogger *log;
};

#endif
/*
vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=2:encoding=utf-8:textwidth=80
*/
